package com.huilian.iotbox.admin.dao;

import com.huilian.iotbox.data.dto.ConsumeRecordDto;
import com.huilian.iotbox.data.dto.GiftIncrementDto;
import com.huilian.iotbox.data.dto.MemberStoreBalanceDto;
import com.huilian.iotbox.data.po.StatsStoreDetail;
import com.huilian.iotbox.data.vo.StatsStoreDetailVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author lizhiquan
 * @CreateDate: 2021-04-12 12:33
 * @Description:
 */
@Mapper
public interface StatsStoreDetailDao {

    Integer insert(StatsStoreDetail statsStoreDetail);

    List<StatsStoreDetail> statsDayStoreDetail(@Param("startTime") String startTime, @Param("endTime") String endTime);

    Integer updateByDateAndMchStoreId(StatsStoreDetail statsStoreDetail);

    List<StatsStoreDetail> statsMonthStoreDetail(@Param("startDateStr") String startDateStr,@Param("endDateStr") String endDateStr);

    List<StatsStoreDetail> statsDayStoreByDeviceDetail(@Param("startTime") String startTime, @Param("endTime") String endTime);


    Integer findStatsStoreDetailCount(StatsStoreDetail statsStoreDetail);

    List<StatsStoreDetail> statsDayStoreDetailByActivity(@Param("startTime") String startTime, @Param("endTime") String endTime);

    StatsStoreDetail findStatsStoreDetail(StatsStoreDetail statsStoreDetail);

    Integer update(StatsStoreDetail item);

    List<StatsStoreDetail> statsDetailsByActivity(String startTime, String endTime);

    List<StatsStoreDetail> statsStatsStoreDetailByOrderV2(String startTime, String endTime, Integer statsType);

    List<StatsStoreDetail> statsStatsStoreDetailByActivityOrderV2(String startTime, String endTime, Integer statsType);


    void batchInsert(@Param("statsStoreDetails") List<StatsStoreDetail> statsStoreDetails);

    StatsStoreDetail finMemberIdCount(MemberStoreBalanceDto memberStoreBalanceDto);

    StatsStoreDetail findActivityOrderMaxAndMin(@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("merchantStoreId") Integer merchantStoreId);

    List<StatsStoreDetail> statsStatsStoreDetailByActivityOrderActivityCancelledMoney(String startTime, String endTime, Integer statsType);

    List<StatsStoreDetail> statsStatsStoreDetailByOrderItem(String startTime, String endTime, Integer statsType);

    List<StatsStoreDetail> statsStatsStoreDetailByLedgerOrder(String startTime, String endTime, Integer statsType);

}
